package com.ytjj.qmyx.admin.utils;


import com.github.binarywang.wxpay.config.WxPayConfig;
import com.github.binarywang.wxpay.constant.WxPayConstants;
import com.github.binarywang.wxpay.service.WxPayService;
import com.github.binarywang.wxpay.service.impl.WxPayServiceImpl;
import com.ytjj.qmyx.mall.model.PayConfig;
import org.apache.commons.lang3.StringUtils;

public class WxPayServiceUtil {
    public static WxPayService getWxBillService(PayConfig payConfig){
        WxPayConfig wxPayConfig = new WxPayConfig();
//        wxPayConfig.setAppId(StringUtils.trimToNull(payConfig.getAppid()));
        wxPayConfig.setMchId(StringUtils.trimToNull(payConfig.getMchId()));
        wxPayConfig.setMchKey(StringUtils.trimToNull(payConfig.getWxKey()));
        if(StringUtils.isNotBlank(payConfig.getSubAppId())) {
            wxPayConfig.setSubAppId(StringUtils.trimToNull(payConfig.getSubAppId()));
        }
        wxPayConfig.setSubMchId(StringUtils.trimToNull(payConfig.getSubMchId()));
        wxPayConfig.setKeyPath(StringUtils.trimToNull(payConfig.getCertPath()));

        // 可以指定是否使用沙箱环境
        wxPayConfig.setUseSandboxEnv(false);
        WxPayService wxPayService = new WxPayServiceImpl();
        wxPayService.setConfig(wxPayConfig);

        return wxPayService;
    }
    public static WxPayService getWxComplaintsV3PayService(PayConfig payConfig){
        WxPayConfig wxPayConfig = new WxPayConfig();
        wxPayConfig.setAppId(StringUtils.trimToNull(payConfig.getAppid()));
        wxPayConfig.setMchId(StringUtils.trimToNull(payConfig.getMchId()));
        wxPayConfig.setMchKey(StringUtils.trimToNull(payConfig.getWxKey()));
        if(StringUtils.isNotBlank(payConfig.getSubAppId())) {
            wxPayConfig.setSubAppId(StringUtils.trimToNull(payConfig.getSubAppId()));
        }
        wxPayConfig.setSubMchId(StringUtils.trimToNull(payConfig.getSubMchId()));
        wxPayConfig.setKeyPath(StringUtils.trimToNull(payConfig.getCertPath()));
        wxPayConfig.setTradeType(WxPayConstants.TradeType.JSAPI);
        wxPayConfig.setPrivateKeyPath(payConfig.getPrivateKeyPath());
        wxPayConfig.setCertSerialNo(payConfig.getCertSerialNo());
        wxPayConfig.setApiV3Key(payConfig.getWxKey());
        // 可以指定是否使用沙箱环境
        wxPayConfig.setUseSandboxEnv(false);
        WxPayService wxPayService = new WxPayServiceImpl();
        wxPayService.setConfig(wxPayConfig);


        return wxPayService;
    }

}
